// GLogHelper.cpp
#include "GLogHelper.h"
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>

GLogHelper::GLogHelper() {
    // 初始化 glog
    google::InitGoogleLogging("");
    FLAGS_alsologtostderr = true;  // 日志同时输出到 stderr 和文件
    FLAGS_minloglevel = google::GLOG_INFO;  // 只记录 WARNING 及以上级别
}

GLogHelper::~GLogHelper() {
    // 关闭 glog
    google::ShutdownGoogleLogging();
}

void GLogHelper::InitLog(const std::string& log_path) {
    // 创建日志目录
    if (access(log_path.c_str(), 0) == -1) {
        mkdir(log_path.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
    }

    // 设置日志输出目录
    FLAGS_log_dir = log_path;
    // google::SetLogDestination(google::INFO, (log_path + "/INFO_").c_str());
    // google::SetLogDestination(google::WARNING, (log_path + "/WARNING_").c_str());
    // google::SetLogDestination(google::ERROR, (log_path + "/ERROR_").c_str());
    // google::SetLogDestination(google::FATAL, (log_path + "/FATAL_").c_str());

    // 添加日志文件扩展名
    google::SetLogFilenameExtension(".log");
}
